package com.quan.common.handler.elasticjob.handler;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import com.dangdang.ddframe.job.executor.ShardingContexts;
import com.dangdang.ddframe.job.lite.api.listener.AbstractDistributeOnceElasticJobListener;

/**
 * 分布式的任务监听器
 * 如果任务有分片，分布式监听器会在总的任务开始前执行一次，结束时执行一次。监听器在之前的ElasticJobConfig已经注册到了Spring容器之中
 * @author yhaoquan
 *
 */
@Component
public class ElasticJobListener extends AbstractDistributeOnceElasticJobListener {

	private Logger logger = LoggerFactory.getLogger(this.getClass());
	
	public ElasticJobListener(long startedTimeoutMilliseconds, long completedTimeoutMilliseconds) {
		super(startedTimeoutMilliseconds, completedTimeoutMilliseconds);
	}

	/**
	 * 任务开始前执行一次
	 */
	@Override
	public void doBeforeJobExecutedAtLastStarted(ShardingContexts shardingContexts) {
		logger.debug("任务开始前执行一次");
	}

	/**
	 * 任务结束时执行一次
	 */
	@Override
	public void doAfterJobExecutedAtLastCompleted(ShardingContexts shardingContexts) {
		logger.debug("任务结束时执行一次");
	}

}
